<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Promise.prototype.then</title>
  </head>
  <body>
    <script>
      //创建 promise 对象
      const p = new Promise((resolve, reject) => {
        resolve('用户数据')
        reject('出错啦')
      })

      //调用 then 方法  then方法的返回结果是 Promise 对象, 对象状态由回调函数的执行结果决定
      //1. 如果回调函数中返回的结果是 非 promise 类型的属性, 状态为成功, 返回值为对象的成功的值

      //   const result = p.then(
      //     value => {
      //       console.log(value)
      //       //1. 非 promise 类型的属性
      //       //   return 'iloveyou'
      //       //2. 是 promise 对象
      //       return new Promise((resolve, reject) => {
      //         resolve('ok')
      //         reject('error')
      //       })
      //       //3. 抛出错误
      //       throw new Error('出错啦!')
      //       throw '出错啦!'
      //     },
      //     reason => {
      //       console.warn(reason)
      //     }
      //   )

      //链式调用
      p.then(value => {
        console.log(value)
      }).then(value => {})
    </script>
  </body>
</html>
